home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / pcboard / tickle16.zip / EDITOR.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-10-04  |  16KB  |  1,007 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Boolean  BOOLEAN007
  26.     Boolean  BOOLEAN008
  27.     Boolean  BOOLEAN009
  28.     Boolean  BOOLEAN010
  29.     Boolean  BOOLEAN011
  30.     Boolean  BOOLEAN012
  31.     Boolean  BOOLEAN013
  32.     Boolean  BOOLEAN014
  33.     Boolean  BOOLEAN015
  34.     Boolean  BOOLEAN016
  35.     Boolean  BOOLEAN017
  36.     Boolean  BOOLEAN018
  37.     Boolean  BOOLEAN019
  38.     Integer  INTEGER001
  39.     Integer  INTEGER002
  40.     Integer  INTEGER003
  41.     Integer  INTEGER004
  42.     Integer  INTEGER005
  43.     Real     REAL001
  44.     Real     REAL002
  45.     Real     REAL003
  46.     Real     REAL004
  47.     Real     REAL005
  48.     String   TSTRING001(49)
  49.     String   STRING002
  50.     String   STRING003
  51.     String   STRING004
  52.     String   STRING005
  53.     String   STRING006
  54.     String   STRING007
  55.     String   STRING008
  56.     String   STRING009
  57.     String   STRING010
  58.     String   STRING011
  59.     String   STRING012
  60.     String   STRING013
  61.     String   STRING014
  62.     String   STRING015
  63.     String   STRING016
  64.     String   STRING017
  65.     String   STRING018
  66.     String   STRING019
  67.     String   STRING020
  68.     String   STRING021
  69.     String   STRING022
  70.     String   STRING023
  71.     String   STRING024
  72.     String   STRING025
  73.     String   STRING026
  74.     String   STRING027
  75.     String   STRING028
  76.     String   STRING029
  77.     Byte     BYTE001
  78.     Int      INT001
  79.     Int      INT002
  80.     Int      INT003
  81.     Int      INT004
  82.     Int      INT005
  83.     Int      INT006
  84.     Int      INT007
  85.     Int      INT008
  86.     Int      INT009
  87.     Int      INT010
  88.     Int      INT011
  89.     Int      INT012
  90.     Int      INT013
  91.     Int      INT014
  92.     Int      INT015
  93.     Int      INT016
  94.     Int      INT017
  95.  
  96. ;------------------------------------------------------------------------------
  97.  
  98.     BOOLEAN008 = 1
  99.     BOOLEAN007 = 1
  100.     STRING016 = PPEPath() + "TKLTEXT" + LangExt()
  101.     STRING025 = "\"
  102.     STRING026 = "|"
  103.     STRING027 = "/"
  104.     STRING028 = "-"
  105.     STRING021 = Chr(8) + Chr(32) + Chr(8)
  106.     Gosub LABEL040
  107.     If (DErr(0)) Then
  108.         Newline
  109.         PrintLn ReadLine(STRING016, 2)
  110.         Newline
  111.         PrintLn ReadLine(STRING016, 3)
  112.         Newline
  113.         Log "Cannot open TICKLE.DBF (DataBase) - Aborting", 0
  114.     Else
  115.         Gosub LABEL020
  116.         If (DErr(0)) Then
  117.             Newline
  118.             PrintLn ReadLine(STRING016, 4)
  119.             Newline
  120.             PrintLn ReadLine(STRING016, 3)
  121.             Newline
  122.             Log "Cannot open TICKLE.NDX (Index) - Aborting", 0
  123.         Else
  124.             Gosub LABEL045
  125.             Cls
  126.             Newline
  127.             PrintLn ReadLine(STRING016, 41)
  128.             Gosub LABEL012
  129.             Gosub LABEL017
  130.             Goto LABEL018
  131.             :LABEL001
  132.             If ((InStr(STRING005, "-") == 0) || (InStr(STRING005, "-") == 1)) Return
  133.             STRING014 = STRING005
  134.             STRING005 = ""
  135.             Tokenize STRING014
  136.             If (TokCount() == 0) Return
  137.             For INT006 = 1 To Len(STRING014)
  138.                 STRING015 = GetToken()
  139.                 If (STRING015 == "") Break
  140.                 If (InStr(STRING015, "-") == 0) Then
  141.                     STRING005 = STRING005 + STRING015 + " "
  142.                     Continue
  143.                 Endif
  144.                 STRING009 = Mid(STRING015, 1, InStr(STRING015, "-") - 1)
  145.                 If (STRING009 <> "") STRING010 = Mid(STRING015, InStr(STRING015, "-") + 1, Len(STRING015))
  146.                 INT007 = S2I(STRING009, 10)
  147.                 INT008 = S2I(STRING010, 10)
  148.                 If (INT007 < 1) Then
  149.                     If (INT007 == 0) STRING009 = STRING015
  150.                     Newline
  151.                     PrintLn ReadLine(STRING016, 26), STRING009, ReadLine(STRING016, 27)
  152.                     Newline
  153.                     Continue
  154.                 Endif
  155.                 If (INT008 > 24) Then
  156.                     Newline
  157.                     PrintLn ReadLine(STRING016, 26), INT008, ReadLine(STRING016, 27)
  158.                     Newline
  159.                     Continue
  160.                 Endif
  161.                 If (INT008 >= INT007) Then
  162.                     For INT003 = INT007 To INT008
  163.                         STRING005 = STRING005 + LTrim(I2S(INT003, 10), " ") + " "
  164.                     Next
  165.                     Continue
  166.                 Endif
  167.                 Newline
  168.                 PrintLn ReadLine(STRING016, 5), STRING015, ReadLine(STRING016, 6)
  169.             Next
  170.             Return
  171.             :LABEL002
  172.             INT002 = 0
  173.             For INT005 = 2 To 25
  174.                 If (DGet(0, DName(0, INT005)) == "            ") Then
  175.                     INT002 = INT005 - 1
  176.                     Break
  177.                 Endif
  178.             Next
  179.             Return
  180.             :LABEL003
  181.             BOOLEAN017 = 0
  182.             If (DTop(0) == 0) Then
  183.                 Newline
  184.                 SPrintLn ReadLine(STRING016, 42)
  185.                 Newline
  186.                 Wait
  187.                 Goto LABEL018
  188.             Else
  189.                 If (!BOOLEAN012) Print "  @X0ESearching @X0F[@X0CENTER Aborts@X0F] @X0F...  @X0E"
  190.                 For INT004 = 1 To DRecCount(0)
  191.                     DGo 0, INT004
  192.                     STRING009 = Trim(DGet(0, DName(0, 1)), " ")
  193.                     If (BOOLEAN012) Goto LABEL004
  194.                     Gosub LABEL048
  195.                     If (InStr(STRING009, STRING005) > 0) Then
  196.                         Print STRING021
  197.                         BOOLEAN013 = 1
  198.                         Newline
  199.                         PrintLn ReadLine(STRING016, 43), STRING009
  200.                         Newline
  201.                         STRING013 = "N"
  202.                         STRING004 = ReadLine(STRING016, 44)
  203.                         InputStr STRING004, STRING013, 14, 1, "YN", 8 + 256
  204.                         If (((STRING013 == "") || (STRING013 == "N")) || (STRING013 == NoChar())) Then
  205.                             BOOLEAN009 = 1
  206.                             Break
  207.                         Else
  208.                             Newline
  209.                             Print "  @X0ESearching @X0F[@X0CENTER Aborts@X0F] @X0F...  @X0E"
  210.                         Endif
  211.                     Else
  212.                         Gosub LABEL019
  213.                         If (BOOLEAN017) Break
  214.                     Endif
  215.                     Continue
  216.                     :LABEL004
  217.                     Print Space(5 - Len(String(INT004))), "@X0F", INT004, ". @X03", STRING009
  218.                     If (INT004 % 2) Goto LABEL005
  219.                     Newline
  220.                     Inc INT009
  221.                     Goto LABEL006
  222.                     :LABEL005
  223.                     Print Space(33 - Len(STRING009))
  224.                     :LABEL006
  225.                     If (BOOLEAN018) Then
  226.                         Gosub LABEL019
  227.                         If (BOOLEAN017) Then
  228.                             BOOLEAN018 = 0
  229.                             Break
  230.                         Endif
  231.                     Endif
  232.                     If ((INT009 > 21) && !BOOLEAN018) Then
  233.                         STRING004 = ReadLine(STRING016, 45)
  234.                         STRING013 = "Y"
  235.                         InputStr STRING004, STRING013, 14, 2, "YNS", 8 + 32
  236.                         If ((STRING013 == "N") || (STRING013 == NoChar())) Then
  237.                             Break
  238.                             Continue
  239.                         Endif
  240.                         If (STRING013 == "NS") Then
  241.                             Newline
  242.                             PrintLn "           @X0E*** @X4FHit ENTER to@X1F Abort Non-Stop Listing@X0E ***"
  243.                             Delay 18
  244.                             Newline
  245.                             BOOLEAN018 = 1
  246.                             Continue
  247.                         Endif
  248.                         INT009 = 0
  249.                     Endif
  250.                 Next
  251.                 If (!BOOLEAN009) DGo 0, 1
  252.                 Print STRING021
  253.                 Newline
  254.             Endif
  255.             Return
  256.             :LABEL007
  257.             DSeek 0, STRING006
  258.             If (DChkStat(0) == 0) Then
  259.                 Newline
  260.                 PrintLn ReadLine(STRING016, 46)
  261.                 Newline
  262.                 Gosub LABEL002
  263.             Else
  264.                 Newline
  265.                 PrintLn ReadLine(STRING016, 47)
  266.                 Newline
  267.                 Delay 18
  268.                 INT002 = 32000
  269.             Endif
  270.             Return
  271.             DispFile PPEPath() + "info", 1 + 4
  272.             BOOLEAN001 = 1
  273.             Return
  274.             :LABEL008
  275.             Newline
  276.             DispFile PPEPath() + "help", 1 + 4
  277.             BOOLEAN005 = 1
  278.             Return
  279.             :LABEL009
  280.             If (BOOLEAN002) Goto LABEL010
  281.             Gosub LABEL038
  282.             BOOLEAN002 = 1
  283.             Goto LABEL011
  284.             :LABEL010
  285.             Newline
  286.             :LABEL011
  287.             STRING005 = ""
  288.             STRING004 = ReadLine(STRING016, 8)
  289.             InputStr STRING004, STRING005, 14, 2, Mask_Ascii(), 256 + 8
  290.             If (STRING005 == "") Then
  291.                 Newline
  292.                 Return
  293.             Endif
  294.             INT006 = S2I(STRING005, 10)
  295.             STRING005 = String(INT006)
  296.             If ((INT006 > 24) || (INT006 < 1)) Then
  297.                 Newline
  298.                 PrintLn ReadLine(STRING016, 9)
  299.                 Newline
  300.                 Return
  301.             Else
  302.                 STRING011 = "desc" + Trim(STRING005, " ")
  303.                 STRING009 = "file" + Trim(STRING005, " ")
  304.             Endif
  305.             If (DGet(0, STRING009) <> "            ") Then
  306.                 BOOLEAN006 = 1
  307.                 Gosub LABEL024
  308.                 BOOLEAN006 = 0
  309.             Else
  310.                 Newline
  311.                 PrintLn ReadLine(STRING016, 58)
  312.             Endif
  313.             Newline
  314.             Return
  315.             :LABEL012
  316.             BOOLEAN009 = 0
  317.             BOOLEAN010 = 0
  318.             BOOLEAN011 = 0
  319.             BOOLEAN012 = 0
  320.             BOOLEAN013 = 0
  321.             STRING005 = ""
  322.             DispFile PPEPath() + "USRMENU", 1 + 4
  323.             STRING004 = ReadLine(STRING016, 48)
  324.             InputStr STRING004, STRING005, 14, 1, Mask_Alpha(), 256 + 8 + 4 + 2
  325.             Select Case (STRING005)
  326.                 Case "A"
  327.                     BOOLEAN010 = 1
  328.                 Case "B"
  329.                     BOOLEAN011 = 1
  330.                 Case "C"
  331.                     BOOLEAN012 = 1
  332.                 Case Else
  333.                     Goto LABEL018
  334.             End Select
  335.             Newline
  336.             If (BOOLEAN012) Goto LABEL013
  337.             STRING005 = ""
  338.             If (BOOLEAN011) Then
  339.                 STRING004 = ReadLine(STRING016, 49)
  340.             ElseIf (BOOLEAN010) Then
  341.                 STRING004 = ReadLine(STRING016, 50)
  342.             Endif
  343.             InputStr STRING004, STRING005, 14, 25, Mask_Ascii(), 256 + 8 + 4 + 2
  344.             If (STRING005 == "") Then
  345.                 Newline
  346.                 Goto LABEL012
  347.                 Return
  348.             Endif
  349.             :LABEL013
  350.             If (BOOLEAN010) Then
  351.                 STRING005 = Trim(STRING005, " ")
  352.                 Gosub LABEL003
  353.             ElseIf (BOOLEAN011) Then
  354.                 STRING006 = STRING005 + Space(25 - Len(STRING005))
  355.                 Gosub LABEL007
  356.                 If (INT002 == 32000) Then
  357.                     Return
  358.                 Else
  359.                     BOOLEAN009 = 1
  360.                 Endif
  361.             ElseIf (BOOLEAN012) Then
  362.                 StartDisp 1
  363.                 INT009 = 0
  364.                 Gosub LABEL003
  365.                 StartDisp 2
  366.                 Goto LABEL012
  367.             Endif
  368.             If (BOOLEAN009) Then
  369.                 If (BOOLEAN011) Then
  370.                     PrintLn ReadLine(STRING016, 51), STRING006
  371.                 Else
  372.                     If (BOOLEAN013) Goto LABEL014
  373.                     PrintLn ReadLine(STRING016, 51), STRING009
  374.                 Endif
  375.                 :LABEL014
  376.                 If (BOOLEAN013) Goto LABEL015
  377.                 STRING010 = RTrim(STRING006, " ") + "'s"
  378.                 STRING004 = ReadLine(STRING016, 52) + STRING010 + ReadLine(STRING016, 53)
  379.                 Goto LABEL016
  380.                 :LABEL015
  381.                 STRING010 = RTrim(STRING009, " ") + "'s"
  382.                 STRING004 = ReadLine(STRING016, 52) + STRING010 + ReadLine(STRING016, 53)
  383.                 :LABEL016
  384.                 InputStr STRING004, STRING005, 10, 1, Mask_Ascii(), 8 + 16384
  385.                 If ((STRING005 == "Y") || (STRING005 == YesChar())) Then
  386.                     Gosub LABEL038
  387.                     BOOLEAN002 = 1
  388.                     Goto LABEL017
  389.                 Else
  390.                     Newline
  391.                 Endif
  392.             Else
  393.                 If (BOOLEAN013) Then
  394.                     Newline
  395.                     PrintLn ReadLine(STRING016, 54), STRING005
  396.                     Newline
  397.                 Else
  398.                     Newline
  399.                     PrintLn ReadLine(STRING016, 55), STRING005
  400.                     Newline
  401.                 Endif
  402.                 Goto LABEL012
  403.             Endif
  404.             Newline
  405.             Return
  406.             :LABEL017
  407.             STRING005 = ""
  408.             STRING004 = ReadLine(STRING016, 56)
  409.             InputStr STRING004, STRING005, 14, 1, Mask_Alpha(), 256 + 8
  410.             If (STRING005 == "A") Then
  411.                 Gosub LABEL027
  412.                 If (STRING003 <> "") Goto LABEL018
  413.                 If (STRING005 == "") Goto LABEL017
  414.             Endif
  415.             If (STRING005 == "") Goto LABEL012
  416.             If ((BOOLEAN002 && (STRING005 <> "D")) && (STRING005 <> "F")) BOOLEAN002 = 0
  417.             If (STRING005 == "D") Gosub LABEL035
  418.             If (STRING005 == "E") Gosub LABEL009
  419.             If (STRING005 == "H") Gosub LABEL008
  420.             If (STRING005 == "L") Then
  421.                 Gosub LABEL038
  422.                 BOOLEAN002 = 1
  423.             Endif
  424.             If (STRING005 == "W") Gosub LABEL039
  425.             If (STRING005 == "U") Then
  426.                 Newline
  427.                 Gosub LABEL012
  428.             Endif
  429.             Goto LABEL017
  430.             INT001 = TokCount()
  431.             Select Case (INT001)
  432.                 Case 1
  433.                     STRING002 = "MENU"
  434.                 Case 2
  435.                     STRING002 = GetToken()
  436.                     STRING003 = GetToken()
  437.                 Case 3
  438.                     STRING002 = GetToken()
  439.                     STRING003 = GetToken()
  440.                     STRING009 = GetToken()
  441.                     INTEGER004 = S2I(STRING009, 10)
  442.                 Case Else
  443.                     SPrintLn ReadLine(STRING016, 12)
  444.                     Log "Too few or too many parameters in TKL.PPE Command Line", 0
  445.                     INT001 = 1
  446.             End Select
  447.             Return
  448.         Endif
  449.     Endif
  450.     :LABEL018
  451.     DnCloseAll 0
  452.     DClose 0
  453.     End
  454.     :LABEL019
  455.     If (PcbNode() == 0) Then
  456.         STRING009 = Inkey()
  457.     Else
  458.         STRING009 = MGetByte()
  459.     Endif
  460.     If ((STRING009 == 13) || (STRING009 == Chr(13))) Then
  461.         Print STRING021 + " " + STRING021
  462.         Newline
  463.         BOOLEAN017 = 1
  464.     Endif
  465.     Return
  466.     :LABEL020
  467.     If (Exist(PPEPath() + "tickle.ndx")) Goto LABEL021
  468.     DnCreate 0, PPEPath() + "tickle", "usr_name"
  469.     Goto LABEL022
  470.     :LABEL021
  471.     DnOpen 0, PPEPath() + "tickle"
  472.     :LABEL022
  473.     Return
  474.     :LABEL023
  475.     STRING008 = LTrim(String(INT002), " ")
  476.     STRING007 = "file" + STRING008
  477.     STRING011 = "desc" + STRING008
  478.     Return
  479.     :LABEL024
  480.     If (BOOLEAN006) Goto LABEL025
  481.     STRING013 = ""
  482.     STRING004 = ReadLine(STRING016, 13)
  483.     InputStr STRING004, STRING013, 14, 1, Mask_Ascii(), 8192 + 16384 + 256 + 8
  484.     Goto LABEL026
  485.     :LABEL025
  486.     STRING013 = "Y"
  487.     :LABEL026
  488.     If ((STRING013 == "Y") || (STRING013 == YesChar())) Then
  489.         STRING013 = ""
  490.         Newline
  491.         STRING004 = ReadLine(STRING016, 14)
  492.         InputStr STRING004, STRING013, 14, 15, Mask_Ascii(), 4 + 2
  493.         If (STRING013 == "") Return
  494.         DPut 0, STRING011, STRING013
  495.         Newline
  496.     Endif
  497.     Return
  498.     :LABEL027
  499.     If (STRING005 <> "ADD VIOLATION") Then
  500.         Gosub LABEL002
  501.         If (INT002 == 0) Then
  502.             Newline
  503.             PrintLn ReadLine(STRING016, 15)
  504.             Newline
  505.             Return
  506.         Endif
  507.     Endif
  508.     If (BOOLEAN007) Then
  509.         INT003 = 0
  510.         If (STRING005 <> "ADD VIOLATION") Then
  511.             Newline
  512.             STRING005 = ""
  513.             STRING004 = ReadLine(STRING016, 16)
  514.             InputStr STRING004, STRING005, 14, 100, Mask_Ascii(), 256 + 8
  515.             Newline
  516.             If (STRING005 == "") Return
  517.             Tokenize STRING005
  518.             INT003 = TokCount()
  519.             Goto LABEL028
  520.         Endif
  521.         STRING005 = STRING002
  522.         :LABEL028
  523.         If (INT003 > 0) Then
  524.             STRING013 = ""
  525.             STRING004 = ReadLine(STRING016, 30)
  526.             InputStr STRING004, STRING013, 14, 5, Mask_Num(), 256 + 8 + 4 + 2
  527.             Newline
  528.             If (STRING013 == "") STRING013 = "0"
  529.             STRING010 = Trim(STRING013, " ")
  530.             If (STRING018 <> "") Then
  531.                 STRING018 = Trim(STRING018, " ")
  532.                 FOpen 3, STRING018, 0, 0
  533.             Endif
  534.             BOOLEAN015 = 0
  535.             For INT004 = 1 To INT003
  536.                 STRING002 = GetToken()
  537.                 STRING002 = Trim(STRING002, " ")
  538.                 If (Len(STRING002) > 12) Then
  539.                     PrintLn ReadLine(STRING016, 17), STRING002
  540.                     PrintLn ReadLine(STRING016, 18)
  541.                     Continue
  542.                 Endif
  543.                 If (BOOLEAN014) Then
  544.                     Frewind 3
  545.                     STRING019 = Left(STRING002, 1)
  546.                     BOOLEAN015 = 0
  547.                     Gosub LABEL031
  548.                     Goto LABEL029
  549.                 Endif
  550.                 BOOLEAN015 = 1
  551.                 :LABEL029
  552.                 If (BOOLEAN015) Then
  553.                     STRING007 = "file" + LTrim(String(INT002), " ")
  554.                     STRING011 = "desc" + LTrim(String(INT002), " ")
  555.                     DPut 0, STRING007, STRING002
  556.                     PrintLn ReadLine(STRING016, 19), STRING002
  557.                     Gosub LABEL024
  558.                     Newline
  559.                     INT006 = INT002
  560.                     Gosub LABEL002
  561.                     If ((INT002 == 0) && (INT006 == 24)) Then
  562.                         Newline
  563.                         PrintLn ReadLine(STRING016, 20)
  564.                         Newline
  565.                         Break
  566.                     Endif
  567.                     Continue
  568.                 Endif
  569.                 PrintLn ReadLine(STRING016, 21), STRING002, ReadLine(STRING016, 22)
  570.             Next
  571.             If (BOOLEAN014) FClose 3
  572.             INT003 = 0
  573.             Goto LABEL030
  574.         Endif
  575.         STRING007 = "file" + LTrim(String(INT002), " ")
  576.         STRING011 = "desc" + LTrim(String(INT002), " ")
  577.         DPut 0, STRING007, STRING005
  578.         Gosub LABEL024
  579.         :LABEL030
  580.         Log "User added file(s) to database", 0
  581.     Endif
  582.     Newline
  583.     Return
  584.     :LABEL031
  585.     FGet 3, STRING020
  586.     If (Ferr(3)) Return
  587.     If (Left(STRING020, 1) <> "%") Then
  588.         STRING009 = STRING020 + STRING002
  589.         If (Exist(STRING009)) Then
  590.             BOOLEAN015 = 1
  591.             Return
  592.         Endif
  593.     Else
  594.         STRING020 = Mid(STRING020, 2, Len(STRING020))
  595.         FOpen 4, STRING020, 0, 0
  596.         FSeek 4, 127, 0
  597.         FRead 4, BYTE001, 1
  598.         If (BYTE001 == 1) BOOLEAN019 = 1
  599.         Frewind 4
  600.         If (BOOLEAN019) Then
  601.             FRead 4, INTEGER003, 4
  602.         Else
  603.             FRead 4, INT015, 2
  604.         Endif
  605.         If (STRING019 < "A") STRING019 = "A"
  606.         If (STRING019 > "Z") STRING019 = "Z"
  607.         INT011 = S2I(STRING019, 36) - 9
  608.         If (BOOLEAN019) Then
  609.             FSeek 4, INT011 * 4, 0
  610.             FRead 4, INTEGER001, 4
  611.             FRead 4, INTEGER002, 4
  612.         Else
  613.             FSeek 4, INT011 * 2, 0
  614.             FRead 4, INT010, 2
  615.             INTEGER001 = INT010
  616.             FRead 4, INT010, 2
  617.             INTEGER002 = INT010
  618.         Endif
  619.         If (BOOLEAN019) Then
  620.             If (STRING019 == "Z") INTEGER002 = INTEGER003 + 1
  621.         Else
  622.             If (STRING019 == "Z") INTEGER002 = INT015 + 1
  623.         Endif
  624.         If (STRING019 == "A") INTEGER001 = 0
  625.         BOOLEAN016 = 0
  626.         BOOLEAN015 = 0
  627.         INT017 = INTEGER002
  628.         INT016 = INTEGER001 - 1
  629.         :LABEL032
  630.         If (BOOLEAN016) Goto LABEL033
  631.         REAL001 = INT017
  632.         REAL002 = INT016
  633.         REAL001 = REAL001 / 2
  634.         REAL002 = REAL002 / 2
  635.         REAL003 = REAL001 + REAL002 + 0.5
  636.         INT014 = REAL003
  637.         If (BOOLEAN019) Then
  638.             INTEGER005 = (INT014 - 1) * 19 + 128
  639.         Else
  640.             INTEGER005 = (INT014 - 1) * 13 + 128
  641.         Endif
  642.         FSeek 4, INTEGER005, 0
  643.         FRead 4, STRING023, 8
  644.         FRead 4, STRING024, 3
  645.         STRING023 = RTrim(STRING023, " ")
  646.         STRING024 = RTrim(STRING024, " ")
  647.         STRING022 = STRING023 + "." + STRING024
  648.         If (STRING022 == STRING002) Then
  649.             BOOLEAN015 = 1
  650.             BOOLEAN016 = 1
  651.         ElseIf (INT017 - INT016 < 2) Then
  652.             BOOLEAN016 = 1
  653.         ElseIf (STRING022 < STRING002) Then
  654.             INT016 = INT014
  655.         ElseIf (STRING022 > STRING002) Then
  656.             INT017 = INT014
  657.         Endif
  658.         Goto LABEL032
  659.         :LABEL033
  660.         FClose 4
  661.     Endif
  662.     If (BOOLEAN015) Goto LABEL034
  663.     Goto LABEL031
  664.     Goto LABEL035
  665.     :LABEL034
  666.     Return
  667.     :LABEL035
  668.     If (BOOLEAN002) Goto LABEL036
  669.     Gosub LABEL038
  670.     BOOLEAN002 = 1
  671.     Goto LABEL037
  672.     :LABEL036
  673.     Newline
  674.     :LABEL037
  675.     STRING005 = ""
  676.     PrintLn ReadLine(STRING016, 23)
  677.     PrintLn ReadLine(STRING016, 24)
  678.     STRING004 = ReadLine(STRING016, 25)
  679.     InputStr STRING004, STRING005, 14, 50, Mask_Ascii(), 256
  680.     If (STRING005 == "") Then
  681.         Newline
  682.         Return
  683.     Endif
  684.     Gosub LABEL001
  685.     Tokenize STRING005
  686.     INT003 = TokCount()
  687.     Newline
  688.     For INT005 = 1 To INT003
  689.         STRING009 = GetToken()
  690.         STRING009 = Trim(STRING009, " ")
  691.         If ((S2I(STRING009, 10) < 25) && (S2I(STRING009, 10) > 0)) Then
  692.             STRING010 = STRING009
  693.             STRING009 = "file" + Trim(STRING009, " ")
  694.             STRING010 = "desc" + Trim(STRING010, " ")
  695.             DPut 0, STRING009, "            "
  696.             DPut 0, STRING010, "                    "
  697.             BOOLEAN003 = 1
  698.             Continue
  699.         Endif
  700.         STRING010 = LTrim(String(STRING009), " ")
  701.         PrintLn ReadLine(STRING016, 26), STRING010, ReadLine(STRING016, 27)
  702.     Next
  703.     If (BOOLEAN003) Gosub LABEL043
  704.     Newline
  705.     Return
  706.     :LABEL038
  707.     StartDisp 1
  708.     Newlines 2
  709.     PrintLn ReadLine(STRING016, 31)
  710.     PrintLn ReadLine(STRING016, 32)
  711.     PrintLn ReadLine(STRING016, 33)
  712.     STRING009 = DGet(0, DName(0, 1))
  713.     PrintLn ReadLine(STRING016, 57), STRING009
  714.     Newline
  715.     PrintLn ReadLine(STRING016, 34)
  716.     PrintLn ReadLine(STRING016, 35)
  717.     For INT005 = 1 To 24
  718.         STRING009 = DGet(0, DName(0, INT005 + 1))
  719.         STRING011 = DGet(0, DName(0, INT005 + 25))
  720.         If (INT005 < 10) Print " "
  721.         Print "@X0F", INT005, ". @X03", STRING009
  722.         Print Space(2)
  723.         Print "@X02", STRING011
  724.         Print Space(2)
  725.         If (!INT005 % 2) Newline
  726.     Next
  727.     Newlines 2
  728.     StartDisp 2
  729.     BOOLEAN002 = 1
  730.     Return
  731.     :LABEL039
  732.     STRING005 = ""
  733.     Newline
  734.     STRING004 = ReadLine(STRING016, 36)
  735.     InputStr STRING004, STRING005, 14, 1, Mask_Ascii(), 8192 + 16384 + 256 + 8
  736.     If ((STRING005 == "Y") || (STRING005 == YesChar())) Then
  737.         INT002 = 1
  738.         For INT005 = 1 To 24
  739.             Gosub LABEL023
  740.             DPut 0, STRING007, "            "
  741.             DPut 0, STRING011, "                    "
  742.             Inc INT002
  743.         Next
  744.         Newline
  745.         PrintLn ReadLine(STRING016, 37)
  746.         Log "User DELETED ENTIRE 'Tickle File'", 0
  747.         Delay 36
  748.     Endif
  749.     Newline
  750.     Return
  751.     :LABEL040
  752.     If (Exist(PPEPath() + "tickle.dbf")) Goto LABEL041
  753.     TSTRING001(0) = "usr_name,C,25,0"
  754.     TSTRING001(1) = "file1,C,12,0"
  755.     TSTRING001(2) = "file2,C,12,0"
  756.     TSTRING001(3) = "file3,C,12,0"
  757.     TSTRING001(4) = "file4,C,12,0"
  758.     TSTRING001(5) = "file5,C,12,0"
  759.     TSTRING001(6) = "file6,C,12,0"
  760.     TSTRING001(7) = "file7,C,12,0"
  761.     TSTRING001(8) = "file8,C,12,0"
  762.     TSTRING001(9) = "file9,C,12,0"
  763.     TSTRING001(10) = "file10,C,12,0"
  764.     TSTRING001(11) = "file11,C,12,0"
  765.     TSTRING001(12) = "file12,C,12,0"
  766.     TSTRING001(13) = "file13,C,12,0"
  767.     TSTRING001(14) = "file14,C,12,0"
  768.     TSTRING001(15) = "file15,C,12,0"
  769.     TSTRING001(16) = "file16,C,12,0"
  770.     TSTRING001(17) = "file17,C,12,0"
  771.     TSTRING001(18) = "file18,C,12,0"
  772.     TSTRING001(19) = "file19,C,12,0"
  773.     TSTRING001(20) = "file20,C,12,0"
  774.     TSTRING001(21) = "file21,C,12,0"
  775.     TSTRING001(22) = "file22,C,12,0"
  776.     TSTRING001(23) = "file23,C,12,0"
  777.     TSTRING001(24) = "file24,C,12,0"
  778.     TSTRING001(25) = "desc1,C,15,0"
  779.     TSTRING001(26) = "desc2,C,15,0"
  780.     TSTRING001(27) = "desc3,C,15,0"
  781.     TSTRING001(28) = "desc4,C,15,0"
  782.     TSTRING001(29) = "desc5,C,15,0"
  783.     TSTRING001(30) = "desc6,C,15,0"
  784.     TSTRING001(31) = "desc7,C,15,0"
  785.     TSTRING001(32) = "desc8,C,15,0"
  786.     TSTRING001(33) = "desc9,C,15,0"
  787.     TSTRING001(34) = "desc10,C,15,0"
  788.     TSTRING001(35) = "desc11,C,15,0"
  789.     TSTRING001(36) = "desc12,C,15,0"
  790.     TSTRING001(37) = "desc13,C,15,0"
  791.     TSTRING001(38) = "desc14,C,15,0"
  792.     TSTRING001(39) = "desc15,C,15,0"
  793.     TSTRING001(40) = "desc16,C,15,0"
  794.     TSTRING001(41) = "desc17,C,15,0"
  795.     TSTRING001(42) = "desc18,C,15,0"
  796.     TSTRING001(43) = "desc19,C,15,0"
  797.     TSTRING001(44) = "desc20,C,15,0"
  798.     TSTRING001(45) = "desc21,C,15,0"
  799.     TSTRING001(46) = "desc22,C,15,0"
  800.     TSTRING001(47) = "desc23,C,15,0"
  801.     TSTRING001(48) = "desc24,C,15,0"
  802.     DCreate 0, PPEPath() + "tickle", 0, TSTRING001(BOOLEAN000)
  803.     Goto LABEL042
  804.     :LABEL041
  805.     DOpen 0, PPEPath() + "tickle", 0
  806.     :LABEL042
  807.     Return
  808.     :LABEL043
  809.     Newline
  810.     If (BOOLEAN004) Goto LABEL044
  811.     Print ReadLine(STRING016, 38)
  812.     BOOLEAN004 = 0
  813.     For INT005 = 2 To 25
  814.         STRING009 = DGet(0, DName(0, INT005))
  815.         If (STRING009 == "            ") Then
  816.             For INT004 = INT005 + 1 To 25
  817.                 STRING009 = DGet(0, DName(0, INT004))
  818.                 STRING011 = DGet(0, DName(0, INT004 + 24))
  819.                 If (STRING009 <> "            ") Then
  820.                     DPut 0, DName(0, INT005), STRING009
  821.                     DPut 0, DName(0, INT005 + 24), STRING011
  822.                     DPut 0, DName(0, INT004), "            "
  823.                     DPut 0, DName(0, INT005 + 25), "                    "
  824.                     BOOLEAN004 = 1
  825.                     Break
  826.                     Continue
  827.                 Endif
  828.                 STRING015 = DName(0, INT005 + 25)
  829.                 DPut 0, DName(0, INT005 + 25), "                    "
  830.             Next
  831.         Endif
  832.         If ((STRING009 == "            ") && !BOOLEAN004) Break
  833.     Next
  834.     PrintLn ReadLine(STRING016, 39)
  835.     :LABEL044
  836.     Return
  837.     :LABEL045
  838.     STRING012 = PPEPath() + "TKL" + String(CurConf()) + ".CFG"
  839.     If (Exist(STRING012)) Then
  840.         FOpen 3, STRING012, 0, 0
  841.         FGet 3, STRING010
  842.         STRING010 = Upper(STRING010)
  843.         If (STRING010 == "TRUE") Then
  844.             BOOLEAN014 = 1
  845.             Goto LABEL046
  846.         Endif
  847.         BOOLEAN014 = 0
  848.         :LABEL046
  849.         FGet 3, STRING010
  850.         FClose 3
  851.         STRING010 = Upper(STRING010)
  852.     Endif
  853.     Gosub LABEL047
  854.     Return
  855.     :LABEL047
  856.     STRING017 = ReadLine(PCBDat(), 31)
  857.     STRING017 = STRING017 + ".@@@"
  858.     FOpen 1, STRING017, 0, 0
  859.     FRead 1, INT012, 2
  860.     FSeek 1, CurConf() * INT012 + 515, 1
  861.     FRead 1, STRING018, 33
  862.     FClose 1
  863.     STRING018 = RTrim(STRING018, " ")
  864.     Return
  865.     :LABEL048
  866.     REAL004 = Time()
  867.     If ((REAL004 - REAL005 < 1) && (INT013 <> 0)) Return
  868.     REAL005 = REAL004
  869.     If (INT013 == 0) Print " "
  870.     If (INT013 > 3) INT013 = 0
  871.     STRING029 = STRING021 + " " + STRING021
  872.     Inc INT013
  873.     Select Case (INT013)
  874.         Case 1
  875.             STRING029 = STRING029 + STRING025
  876.         Case 2
  877.             STRING029 = STRING029 + STRING026
  878.         Case 3
  879.             STRING029 = STRING029 + STRING027
  880.         Case 4
  881.             STRING029 = STRING029 + STRING028
  882.     End Select
  883.     Print STRING029
  884.     STRING029 = ""
  885.     Return
  886.  
  887. ;------------------------------------------------------------------------------
  888. ;
  889. ; Usage report (before postprocessing)
  890. ;
  891. ; ■ Statements used :
  892. ;
  893. ;    1       End
  894. ;    1       Cls
  895. ;    1       Wait
  896. ;    185     Goto 
  897. ;    253     Let 
  898. ;    15      Print 
  899. ;    35      PrintLn 
  900. ;    130     If 
  901. ;    3       DispFile 
  902. ;    4       FOpen 
  903. ;    4       FClose 
  904. ;    3       FGet 
  905. ;    4       StartDisp 
  906. ;    5       Log 
  907. ;    13      InputStr 
  908. ;    32      Gosub 
  909. ;    36      Return
  910. ;    3       Delay 
  911. ;    3       Inc 
  912. ;    63      Newline
  913. ;    2       Newlines 
  914. ;    3       Tokenize 
  915. ;    2       SPrintLn 
  916. ;    2       Frewind 
  917. ;    5       FSeek 
  918. ;    11      FRead 
  919. ;    1       DCreate 
  920. ;    1       DOpen 
  921. ;    1       DClose 
  922. ;    1       DnCreate 
  923. ;    1       DnOpen 
  924. ;    1       DnCloseAll 
  925. ;    2       DGo 
  926. ;    1       DSeek 
  927. ;    12      DPut 
  928. ;
  929. ;
  930. ; ■ Functions used :
  931. ;
  932. ;    5       *
  933. ;    2       /
  934. ;    2       %
  935. ;    100     +
  936. ;    11      -
  937. ;    62      ==
  938. ;    11      <>
  939. ;    18      <
  940. ;    10      <=
  941. ;    10      >
  942. ;    21      >=
  943. ;    101     !
  944. ;    27      &&
  945. ;    19      ||
  946. ;    8       Len(
  947. ;    2       Upper()
  948. ;    3       Mid()
  949. ;    2       Left()
  950. ;    5       Space()
  951. ;    1       Ferr()
  952. ;    4       Chr()
  953. ;    6       InStr()
  954. ;    7       LTrim()
  955. ;    5       RTrim()
  956. ;    10      Trim()
  957. ;    1       Time()
  958. ;    2       NoChar()
  959. ;    3       YesChar()
  960. ;    1       Inkey()
  961. ;    9       String()
  962. ;    2       Mask_Alpha()
  963. ;    1       Mask_Num()
  964. ;    8       Mask_Ascii()
  965. ;    2       CurConf()
  966. ;    1       PCBDat()
  967. ;    11      PPEPath()
  968. ;    1       PcbNode()
  969. ;    60      ReadLine()
  970. ;    8       GetToken()
  971. ;    4       Exist()
  972. ;    1       I2S()
  973. ;    7       S2I()
  974. ;    1       LangExt()
  975. ;    1       MGetByte()
  976. ;    4       TokCount()
  977. ;    2       DErr()
  978. ;    14      DName()
  979. ;    2       DRecCount()
  980. ;    1       DTop()
  981. ;    9       DGet()
  982. ;    1       DChkStat()
  983. ;
  984. ;------------------------------------------------------------------------------
  985. ;
  986. ; Analysis flags : d
  987. ;
  988. ; d - Access PCBOARD.DAT ■ 2
  989. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  990. ;     for many PPE so they can find various informations on the system
  991. ;     (system paths, max number of lines in messages, ...) but it may also
  992. ;     be a way to gather vital informations.
  993. ;     ■ Search for : PCBDAT()
  994. ;
  995. ;------------------------------------------------------------------------------
  996. ;
  997. ; Postprocessing report
  998. ;
  999. ;    10      For/Next
  1000. ;    0       While/EndWhile
  1001. ;    63      If/Then or If/Then/Else
  1002. ;    3       Select Case
  1003. ;
  1004. ;------------------------------------------------------------------------------
  1005. ;                 AEGiS Corp - Break the routines, code against the machines!
  1006. ;------------------------------------------------------------------------------
  1007.